// 可以把 所有nodejs里的异步操作转成promise对象；
// ESmodule  ： import().then();
// 引入 util工具 获取里的promisify方法；
// let promisify = require("util").promisify;
let {promisify} = require("util");
const fs = require("fs");

// fs.readFile("./mydir/test.js",(err,data)=>{
//     if(err){
//         console.log(err);
//     }
//     console.log(data.toString());
// })
// try{
//    var data =  fs.readFileSync("./mydir/test.js");
// }catch(err){
//     console.log(err);
// }

// 1.链式操作 ；
// promisify(fs.readFile)("./mydir/test.js").then(data=>{
//     console.log(data.toString());
//     return promisify(fs.writeFile)("./mydir/test4.js",data);
// }).then(()=>{
//         console.log("复制成功");
// }).catch(err=>{
//     console.log(err);
// })

//2. async await 写法 ；避免回调函数层层嵌套。
async function fn(){
    let data =  await promisify(fs.readFile)("./mydir/test.js");
    await promisify(fs.writeFile)("./mydir/test5.js",data);
    console.log("复制成功");
}

fn();
